package com.zh.webcommon.common.auditor.jpa;


import com.zh.mycommon.viewdata.PageData;

import java.util.function.Function;

import static com.zh.mycommon.viewdata.ToWrapper.foreach;


/**
 * @author Zhou
 * @date 22:16 2023/11/5
 */
public final class UtilJpa {

    // Page(JPA) ——> PageData
    public static <V, T> PageData<V> asPageData(org.springframework.data.domain.Page<T> page, Function<T, V> convert) {
        return PageData.of(page.getNumber() + 1, page.getSize(), page.getTotalElements(), foreach(page.getContent(), convert));
    }

    //Page(JPA) ——> PageData
    public static <T> PageData<T> asPageData(org.springframework.data.domain.Page<T> page) {
        return PageData.of(page.getNumber() + 1, page.getSize(), page.getTotalElements(), page.getContent());
    }

}
